/**
 * 
 */
package com.vision.core.sv.db.mgr;

import java.io.Serializable;
import java.util.List;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.orm.hibernate3.HibernateTemplate;

/**
 * @author Mark
 *
 */
public interface IDataManager<T> {
	
	Class<T> getManagedClass();
	
	T create(T object);
	
	List<T> getAll();
	
	T getById(Serializable id);
	
	List<T> getByIds(String idColumn, List<?> ids);
	
	T update(T object);
	
	T delete(T object);
	
	HibernateTemplate getTemplate();
	
	SessionFactory getSessionFactory();
	
	Session openSession();

}
